package com.rub.prajna.core.utils

import java.io.File

open class FileKit {
    /**
     * 列出文件清单,以一个数组形式返回，
     *
     * @param filePath 磁盘文件路径
     * @param fileArr  此参数需要传一个 MutableList<>()进入方法体,在方法体创建一个对象数组，子目录的文件存放不了进数组进行返回
     * @return List<String?>?
     */
    open fun listFiles(filePath: String, fileArr: MutableList<String>): List<String?>? {
        //列出所有文件
        val files = File(filePath).listFiles()
        for (k in files.indices) {
            if (files[k].isDirectory) {
                listFiles(files[k].path, fileArr)
            } else if (!files[k].isDirectory) {
                fileArr.add(files[k].absolutePath)
            }
        }
        return fileArr
    }

    open fun mkDirs(dirs: String?) {
        val srcFile = File(dirs)
        val flag = srcFile.exists()
        /**
         * @flag判断文件是否存在
         * @isDirectory测试此抽象路径名表示的文件是否是一个目录
         * @canWrite测试应用程序是否可以读取此抽象路径名表示的文件
         */
        if (!flag || !srcFile.isDirectory || !srcFile.canRead()) {
            try {
                srcFile.mkdirs()
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
    }
}